<script>
    // 编写一个函数 calculate_sum，接受一个参数：
    // numbers: 一个包含数字的列表（例如[1, 2, 3, 4]）。
    // 函数应返回列表中所有元素的和。
    // 如果列表为空，函数应返回 0。

    // let number = [1, 2, 4, 5]
    // let calculate_sum = function () {
    //     let sumNumber = 0
    //     for (i = 0; i < number.length; i++) {
    //         sumNumber += number[i]
    //     }
    //     return sumNumber
    // }
    // console.log(calculate_sum());

    // 优化版
    // 变量作用域问题：在 for 循环中，变量 i 没有用 let 声明，这会隐式地将 i 变成全局变量，可能导致意外的行为。
    // 函数参数问题：calculate_sum 函数没有接受参数，而是直接使用了外部的 number 变量。这样会导致函数不够通用，
    // 建议将 number 作为参数传入。
    // 代码风格：建议使用 const 或 let 声明变量，避免使用 var。

    // const number = [1, 2, 4, 5];
    // const calculate_sum = function (arr) {
    //     let sumNumber = 0;
    //     for (let i = 0; i < arr.length; i++) {
    //         sumNumber += arr[i];
    //     }
    //     return sumNumber;
    // };
    // console.log(calculate_sum(number));

    // 2、编写一个函数 find_max_and_min，接受一个参数：
    // numbers: 一个包含数字的列表（例如 [3, 1, 4, 1, 5, 9, 2]）。
    // 函数应返回一个包含两个元素的列表（或元组），第一个元素是列表中的最大值，第二个元素是最小值。
    // 如果列表为空，函数应返回 None。

    // const number = [3, 1, 4, 1, 5, 9, 2]
    // const find_max_and_min = function (find) {
    //     let maxNumber = find[0]
    //     let minNumber = find[0]
    //     for (let i = 0; i < find.length; i++) {
    //         if (find[i] > maxNumber) {
    //             maxNumber = find[i]
    //         }else if(find[i] < minNumber) {
    //             minNumber = find [i]
    //         }
    //     }
    //     return [maxNumber, minNumber]
    // }
    // console.log(find_max_and_min(number))

    // 优化版：else if 是不必要的，因为每次循环时，一个元素不可能同时大于最大值和小于最小值。
    // 直接使用两个独立的 if 语句会更清晰。
    // const number = [3, 1, 4, 1, 5, 9, 2];

    // const find_max_and_min = function (find) {
    //     if (find.length === 0) {
    //         return null; // 如果数组为空，返回 null
    //     }
    //     let maxNumber = find[0];
    //     let minNumber = find[0];
    //     for (let i = 0; i < find.length; i++) {
    //         if (find[i] > maxNumber) {
    //             maxNumber = find[i];
    //         }
    //         if (find[i] < minNumber) {
    //             minNumber = find[i];
    //         }
    //     }
    //     return [maxNumber, minNumber];
    // };
    // console.log(find_max_and_min(number));

    // 3、编写一个函数 sumOfPositives，接受一个参数：
    // arr: 一个包含数字的数组（可能有正数、负数和零）。
    // 函数应返回数组中所有正数的和。
    // 如果数组为空或没有正数，函数应返回 0。
    // const arr = [1, -2, 3, 0, 4, -5];
    // const sumOfPositives = function (arr) {
    //     let newArr = 0
    //     for (let i = 0; i < arr.length; i++) {
    //         if (arr[i] > 0) {
    //             newArr += arr[i]
    //         }
    //     }
    //     return newArr
    // }
    // console.log(sumOfPositives(arr));

    // 4、编写一个函数 countMatches，接受两个参数：
    // arr: 一个包含数字的数组。
    // conditionFn: 一个函数，用于判断数组中的元素是否满足条件。
    // 函数应返回数组中满足 conditionFn 条件的元素个数。
    // 如果数组为空，函数应返回 0。



</script>